package org.example.service;

import org.example.entity.Role;

import java.util.List;
import java.util.Map;

/**
 * 权限服务接口
 */
public interface PermissionService {
    
    /**
     * 获取用户权限列表
     * @param userId 用户ID
     * @return 权限列表
     */
    List<String> getUserPermissions(Long userId);
    
    /**
     * 获取权限映射表
     * @return 权限映射
     */
    Map<String, String> getPermissionMap();

    List<Role> getPlatformRolesByUserId(Long userId);

    List<String> getPlatformPermissionsByUserId(Long userId);

    List<String> getPermissionsByRoleId(Long roleId);

    List<Role> getUserRoles(Long userId);

    Role getUserPrimaryRole(Long userId);

    boolean hasPermission(Long userId, String permissionCode);

    boolean hasAnyPermission(Long userId, List<String> permissionCodes);

    boolean hasAllPermissions(Long userId, List<String> permissionCodes);

    /**
     * 根据用户ID和公司ID查询企业端权限列表
     */
    List<String> getEnterprisePermissionsByUserId(Long userId, Long companyId);

    /**
     * 根据用户ID和公司ID查询用户端权限列表
     */
    List<String> getUserPermissionsByUserId(Long userId, Long companyId);
}



